<?php
/**
 * Система регистрации заявок на основе Zend Framework 
 * 
 * Структура и логика расположения файлов взята из официального руководства
 * по Zend Framework
 * http://framework.zend.com/wiki/display/ZFDEV/Official+ZF+QuickStart
 * 
 * LICENSE: Free to use license
 * 
 * @copyright	2009
 * @author		Яковлев Иван Yak1980@list.ru | Best4u.mail@gmail.com
 * @version		$id:$
 * @link 
 * @since 
 */
 
/**
 * Устанавливаем параметры окружения PHP 
 * вывод интерпретатором php всех сообщений об ошибках:
 */
error_reporting(E_ALL|E_STRICT);
ini_set('display_startup_errors', true); 
ini_set('display_errors', true);

/**
 * Задаем переменную окружения нашего приложения
 * 
 * на данном этапе заданы три вохможных значения переменной окружения:
 * production - режим конечного использования
 * development - режим разработки (в этом режиме отображаются возникшие ошибки
 * приложения)
 * home - режим разработки в домашних условиях (наследуется от режима разработки)
 * 
 */
//	defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'production');
	defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'development');


/**
 * Zend Framework расчитан на то, чтобы его файлы находились в include_path, 
 * поэтому мы добавляем необходимы для нашего приложения пути.
 * 
 * Обратите внимание на конструкцию dirname(dirname(__FILE__)).
 * Чтобы понять ее значене, предположим что наш файл обработчик bootstrap.php
 * находится в папке
 * C:\server\htdocs\project-template\application - именно этот путь выдаст
 * директива dirname(__FILE__),
 * но нам надо путь к корневой дирректории нашего приложения, т.е.
 * C:\server\htdocs\project-template - именно этот путь и выдаст конструкция
 * dirname(dirname(__FILE__)).
 * DIRECTORY_SEPARATOR - разделитель дирректорий (для Win - это \ или /,
 * для Linux - только /).
 * PATH_SEPARATOR - разделитель путей в include_path, это ;
 * Таким образом мы имеем независящий от операционной системы способ задания
 * include path
 */
// задаем константы за основу взята реализация в magento 1.3.1
//define('DS', DIRECTORY_SEPARATOR);
// Второй вариант:
//defined('DS') || define('DS', DIRECTORY_SEPARATOR);

//define('PS', PATH_SEPARATOR);
// Второй вариант:
defined('PS') || define('PS', PATH_SEPARATOR);

// base path C:\server\htdocs\project-template
//define('BASE_PATH', dirname(__FILE__)); 
// Второй вариант:
defined('BASE_PATH') || define('BASE_PATH', realpath(dirname(__FILE__)));

// Set application path C:\server\htdocs\project-template\application
//define('APPLICATION_PATH', dirname(__FILE__) . '/application');
// Второй вариант:
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application'));

/**
 * Задаем include path:
 * 
 * C:\server\htdocs\project-template\library
 * C:\server\htdocs\project-template\application
 */
$paths[] = BASE_PATH . '/library';
$paths[] = APPLICATION_PATH;
// преобразуем элементы массива в одну строку с разделителем PS	
$app_path = implode(PS, $paths);
// задаем include path
set_include_path($app_path . PS . get_include_path());

/** Zend_Application */
require_once 'Zend/Application.php';
/** Zend_Autoloader */
require_once 'Zend/Loader/Autoloader.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();
